package cn.oms.oms.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 *
 * </p>
 *
 * @author AllenChen曾晨
 * @since 2022-04-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("patient")
@ApiModel(value="Patient对象", description="")
public class Patient implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "患者ID")
    @TableId(value = "patientId", type = IdType.AUTO)
    private Integer patientId;

    @ApiModelProperty(value = "用户ID")
    @TableField("userId")
    private Integer userId;

    @ApiModelProperty(value = "患者姓名")
    @TableField("patientName")
    private String patientName;

    @ApiModelProperty(value = "出生年月日")
    @TableField("patientDob")
    private Date patientDob;

    @ApiModelProperty(value = "年龄")
    @TableField("age")
    private Integer age;

    @ApiModelProperty(value = "年龄（月）")
    @TableField("ageMon")
    private Integer ageMon;

    @ApiModelProperty(value = "血型")
    @TableField("blood")
    private String blood;

    @ApiModelProperty(value = "性别")
    @TableField("sex")
    private Integer sex;

    @ApiModelProperty(value = "婚姻状况")
    @TableField("maritalStatus")
    private Integer maritalStatus;

    @ApiModelProperty(value = "国籍")
    @TableField("nationality")
    private String nationality;

    @ApiModelProperty(value = "籍贯")
    @TableField("nativePlace")
    private String nativePlace;

    @ApiModelProperty(value = "身份证号码")
    @TableField("documentNo")
    private String documentNo;

    @ApiModelProperty(value = "家庭地址")
    @TableField("homeAddress")
    private String homeAddress;

    @ApiModelProperty(value = "现居地")
    @TableField("nowAddress")
    private String nowAddress;

    @ApiModelProperty(value = "电话号码")
    @TableField("phone")
    private String phone;

    @ApiModelProperty(value = "邮箱")
    @TableField("email")
    private String email;

    @ApiModelProperty(value = "身高")
    @TableField("height")
    private Integer height;

    @ApiModelProperty(value = "体重")
    @TableField("weight")
    private Integer weight;

    @ApiModelProperty(value = "工作单位名称")
    @TableField("workCompanyName")
    private String workCompanyName;

    @ApiModelProperty(value = "单位电话")
    @TableField("workCompanyPhone")
    private String workCompanyPhone;

    @ApiModelProperty(value = "职务名称")
    @TableField("positionName")
    private String positionName;

    @ApiModelProperty(value = "紧急联系人电话")
    @TableField("emergencyContactPhoneNo")
    private String emergencyContactPhoneNo;

    @ApiModelProperty(value = "紧急联系人姓名")
    @TableField("emergencyContactName")
    private String emergencyContactName;

    @ApiModelProperty(value = "紧急联系人关系")
    @TableField("emergencyContactRelationship")
    private String emergencyContactRelationship;

    @ApiModelProperty(value = "创建时间")
    @TableField("createTime")
    private Date createTime;

    @ApiModelProperty(value = "删除标记")
    @TableField("deleteFlag")
    private Integer deleteFlag;

    /**
     * 当前问题包含的标签集合
     */
    //这个属性没有对应的列,需要使用下面的注解表示,否则数据库操作会报错
    @TableField(exist = false)
    private String returnPatientDob;

    /**
     * 当前问题包含的标签集合
     */
    //这个属性没有对应的列,需要使用下面的注解表示,否则数据库操作会报错
    @TableField(exist = false)
    private String returnCreateTime;

}
